package com.ruoyi.front_desk.FrontdeskPublicOpinion.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.Date;

/**
 * @author 刘奥旸
 * @version 1.0
 */
public class FrontdeskPublicOpinion  extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** $column.columnComment */
    private Long opinionId;

    /** 标识提交意见的选民 */
    @Excel(name = "选民ID")
    private Long voterId;

    /** 记录选民的姓名 */
    @Excel(name = "选民的姓名")
    private String voterName;

    /** 记录选民的联系方式 */
    @Excel(name = "选民的电话")
    private String contactInfo;

    /** 标识意见所属的选区 */
    @Excel(name = "所属街道")
    private Long constituencyId;

    /** 标识联系的代表 */
    @Excel(name = "指定代表")
    private Long representativeId;

    /** 意见或建议的标题 */
    @Excel(name = "意见或建议的标题")
    private String title;

    /** 意见或建议的材料 */
    @Excel(name = "意见或建议的材料")
    private String material;

    /** 意见或建议的内容 */
    @Excel(name = "意见或建议的内容")
    private String content;

    /** 记录反馈给选民的时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "记录反馈给选民的时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date feedbackTime;

    /** 记录反馈给选民的内容 */
    @Excel(name = "记录反馈给选民的内容")
    private String feedbackContent;

    /** 建议状态，0未处理，1待办，-1办结 */
    @Excel(name = "建议状态，0未处理，1待办，-1办结")
    private Long voterStatus;

    /** 联系对象 */
    @Excel(name = "联系对象")
    private String contactPerson;

    /** 审批反馈 */
    @Excel(name = "审批反馈")
    private String approvalFeedback;

    /** 记录意见提交的时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "记录意见提交的时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date submitTime;

    /** 标识意见的处理状态 */
    @Excel(name = "标识意见的处理状态")
    private String processingStatus;

    /** 记录街道或部门的处理意见 */
    @Excel(name = "记录街道或部门的处理意见")
    private String processingOpinion;

    /** 记录处理完成的时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "记录处理完成的时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date processingTime;

    public void setOpinionId(Long opinionId)
    {
        this.opinionId = opinionId;
    }

    public Long getOpinionId()
    {
        return opinionId;
    }
    public void setVoterId(Long voterId)
    {
        this.voterId = voterId;
    }

    public Long getVoterId()
    {
        return voterId;
    }
    public void setVoterName(String voterName)
    {
        this.voterName = voterName;
    }

    public String getVoterName()
    {
        return voterName;
    }
    public void setContactInfo(String contactInfo)
    {
        this.contactInfo = contactInfo;
    }

    public String getContactInfo()
    {
        return contactInfo;
    }
    public void setConstituencyId(Long constituencyId)
    {
        this.constituencyId = constituencyId;
    }

    public Long getConstituencyId()
    {
        return constituencyId;
    }
    public void setRepresentativeId(Long representativeId)
    {
        this.representativeId = representativeId;
    }

    public Long getRepresentativeId()
    {
        return representativeId;
    }
    public void setTitle(String title)
    {
        this.title = title;
    }

    public String getTitle()
    {
        return title;
    }
    public void setMaterial(String material)
    {
        this.material = material;
    }

    public String getMaterial()
    {
        return material;
    }
    public void setContent(String content)
    {
        this.content = content;
    }

    public String getContent()
    {
        return content;
    }
    public void setFeedbackTime(Date feedbackTime)
    {
        this.feedbackTime = feedbackTime;
    }

    public Date getFeedbackTime()
    {
        return feedbackTime;
    }
    public void setFeedbackContent(String feedbackContent)
    {
        this.feedbackContent = feedbackContent;
    }

    public String getFeedbackContent()
    {
        return feedbackContent;
    }
    public void setVoterStatus(Long voterStatus)
    {
        this.voterStatus = voterStatus;
    }

    public Long getVoterStatus()
    {
        return voterStatus;
    }
    public void setContactPersonId(String contactPerson)
    {
        this.contactPerson = contactPerson;
    }

    public String getContactPersonId()
    {
        return contactPerson;
    }
    public void setApprovalFeedback(String approvalFeedback)
    {
        this.approvalFeedback = approvalFeedback;
    }

    public String getApprovalFeedback()
    {
        return approvalFeedback;
    }
    public void setSubmitTime(Date submitTime)
    {
        this.submitTime = submitTime;
    }

    public Date getSubmitTime()
    {
        return submitTime;
    }
    public void setProcessingStatus(String processingStatus)
    {
        this.processingStatus = processingStatus;
    }

    public String getProcessingStatus()
    {
        return processingStatus;
    }
    public void setProcessingOpinion(String processingOpinion)
    {
        this.processingOpinion = processingOpinion;
    }

    public String getProcessingOpinion()
    {
        return processingOpinion;
    }
    public void setProcessingTime(Date processingTime)
    {
        this.processingTime = processingTime;
    }

    public Date getProcessingTime()
    {
        return processingTime;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("opinionId", getOpinionId())
                .append("voterId", getVoterId())
                .append("voterName", getVoterName())
                .append("contactInfo", getContactInfo())
                .append("constituencyId", getConstituencyId())
                .append("representativeId", getRepresentativeId())
                .append("title", getTitle())
                .append("material", getMaterial())
                .append("content", getContent())
                .append("feedbackTime", getFeedbackTime())
                .append("feedbackContent", getFeedbackContent())
                .append("voterStatus", getVoterStatus())
                .append("contactPersonId", getContactPersonId())
                .append("approvalFeedback", getApprovalFeedback())
                .append("submitTime", getSubmitTime())
                .append("processingStatus", getProcessingStatus())
                .append("processingOpinion", getProcessingOpinion())
                .append("processingTime", getProcessingTime())
                .toString();
    }
}
